package cn.iocoder.yudao.module.acm.controller.admin.cleaningplan.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

@Schema(description = "管理后台 - 机供品服务用具清洗计划新增/修改 Request VO")
@Data
public class CleaningPlanSaveReqVO {

    @Schema(description = "唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "121")
    private Long id;

    @Schema(description = "服务用具清洗计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "服务用具清洗计划名称不能为空")
    private String cplanName;

    //@Schema(description = "餐具清洗计划编号(MEAL-YYYY-XXX)", requiredMode = Schema.RequiredMode.REQUIRED)
    //@NotEmpty(message = "餐具清洗计划编号(MEAL-YYYY-XXX)不能为空")
    //private String cplanCode;

    @Schema(description = "关联航班号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "关联航班号不能为空")
    private String flightNo;

    @Schema(description = "服务用具", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "服务用具不能为空")
    private Long tablewareType;

    @Schema(description = "服务用具数量(个)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务用具数量(个)不能为空")
    private Integer tablewareQty;

    @Schema(description = "清洗状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "清洗状态不能为空")
    private String cleaningStatus;

    @Schema(description = "特别说明")
    private String specialRemarks;

    @Schema(description = "计划有效期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "计划有效期不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate[] expireDate;

    @Schema(description = "备注")
    private String remarks;

}